<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>class</title>
</head>

<body>
    <script>
        // <!-- 传统的创建类的方法 -->
        function Fn() {
            this.x = 100;
        }
        Fn.prototype.getX = function () {
            console.log(this.x);
        }
        var f1 = new Fn;
        f1.getX();
        // 也可以当作函数执行
        Fn();
        // 还可以当作普通对象
        Fn.abc = function () { };
        Fn.abc();

        // class创建类的方法
        class Fun {
            // 等价于构造函数体
            constructor() {
                this.x = 100;
            }
            // 直接写方法就相当于 给原型加方法 prototype
            getX() {
                console.log(this.x);
            }
            // 前面加static的，把它当普通对象键值对 
            static getY() {
                console.log(this.x++);
            }
            aa () {
                console.log(this);
                console.log(x);
            }
        }
        var fun = new Fun()
    </script>
</body>

</html>